As is known in the art, the Internet Engineering Task Force (IETF) Federated File Systems (FedFS) working group is defining standards that leverage NFSv4 to federate multiple individual file systems or file sets such that NFSv4 clients will see them as a single file system namespace. The NFSv4 protocol provides a referral mechanism that allows a file server to redirect a NFSv4 client to another file server using a federated namespace (single global name space for a set of NFSv4 servers) using the NFSv4 protocol's referral capabilities. The file system federation protocol enables file access and namespace traversal across collections of independently administered file servers.
The standards allow for implementations that extend the single namespace to non-NFSv4 clients, such as CIFS or pre-NFSv4 clients (i.e., NFSv2 and NFSv3 clients, herein after referred to as NFSv2/3 clients) but do not specify how this might be achieved.
The NFSv4 Federated File System (FedFS) standards define the ability to create a single file system namespace by stitching together or federating multiple individual file set (i.e. file systems or portions of) hosted by multiple file servers. More particularly, with NFSv4 systems, the federation or namespace links file sets together using “junctions”. A junction at one file set looks like a normal directory to NFSv4 clients by is in effect a pointer to another file set hosted by the same or a different file server. Junctions themselves do not store the location of the target file set. Instead, a junction stores a unique identifier of the file set to which it refers. The file set identifier is called a File Set Name (FSN). Each junction also stores the fully qualified domain name (FQDN) of a system of the LDAP directory that can be used to resolve the FSN to its current location (i.e. the FQDN and export of the file set on a file server). This namespace database is known as the NSDB and the location of a file set its File Set Location (FSL). Note that there may be multiple replicas of or ways to access a file set hence there can be multiple FSL entries associated with a single FSN in the NSDB.
When a user or application on an NFSv4 client attempts to navigate into or through a junction in the namespace the file server hosting the file system in which the junction resides extracts the File Set Name (FSN) and relevant NSDB information from the junction, contacts the NSDB to look up the current FSL's for the file set. The file server responds to the client with an NFSv4 “referral” (fs_locations or fs_locations_info defined in RFC 3530 and RFC 5661) that includes all or a sub-set of the FSL's for the file set concerned. The client then makes a connection to the target file server so that the user or application can continue browsing what appears to them as a single file system namespace.
For example, reference is made to FIG. 1. It is noted that the namespace is federated among the file server1 and file server2. Thus, here, in this example, directory “data” is in file server1 and directory “users” is in server2. The junction linking the two file servers, server1 and server2 is in server1 as “home” which is serviced by the NSDB, as indicated. In this example, the user wishes to access the path in the namespace “/home/c”. First, the NFSv4 client lists the contents of the “/” or “root” directory on file server1 during the browse, “home” appears as to be a normal directory, so the client attempts to browse into it. Next, as a result of the browse, file server1 discovers that “home” is a namespace junction (namespace data base (NSDB)) and determines the location of “home” using the FedFS NSDB service (i.e., determines from the NSDB that the location is “server2:/users/c”). Next, file server1 returns an NFSv4 referral to the NFSv4 client directing it to server2's “/users”. Next, the client accesses “/users/c” on file server2. Thus, with such a system, one file server, through the junction therein, redirects the request to a different file server within the system. The FedFS functionality outlined above works for NFSv4 clients and could easily be extended to CIFS clients with the inclusion of CIFS based FSL entries in the NSDB because both NFSv4 and CIFS protocols include the concept of a referral. That is, a response to a client telling them that the directory they are interested in does not reside at the location they are connected to. In the case of NFSv4 the referral also includes the location of the desired file set. In the case of CIFS the client gets this information in a separate exchange with a DFS server. Either way, the client ends up making a connection directly to the file server that is hosting the desired file set.
In contrast to NFSv4 and CIFS there is no concept of referrals or federated namespace in the NFSv2/3 protocols. A file server has no way to inform an NFSv2/3 client that a given directory represents an entry point to a file set that resides elsewhere. Having said that file server administrators have been building federated file system namespaces for NFSv2/3 clients for years using the “automounter” or “autofs” functionality built into most, if not all, NFSv2/3 clients operating systems.
The automount functionality on an NFSv2/3 client is configured to watch any user or application access to specified directories local to or mounted on the client. Whenever a user or application attempts to access one of the specified directories the automount daemon consults its automount table to determine what file set exported from a file server should be mounted at that location. The automount maps can be configured as local files or retrieved by the client from NIS or LDAP directory services.
As noted above, there is no concept of referrals in the NFSv2/3 client protocols and therefore there is no way for a file server to direct NFSv2/3 clients to where the file sets they are interested actually are located.
This disclosure describes three embodiments wherein an NFSv4 FedFS namespace is made available to NFSv2/3 clients. More particularly, methods whereby a file server participating in a file system namespace defined and managed via NFSv4 junctions and FedFS NSDB's extend that namespace to NFSv2/3 clients.
In accordance with the disclosure, an information retrieval system is provided having: a client; a file server system having a file set accessible by the client and configured to operate with a federated namespace; and a memory for storing re-direction information accessible by the client for identifying a request issued by the client for a file set at a first location in the namespace where the file set is located a second, different location and wherein the client in examining the re-direction information in the memory, re-directs the request to the second location in accordance with the re-direction information.
In one embodiment an information retrieval system is provided having: a client adapted for accessing a file set stored on one of a plurality of file servers; a plurality of file servers configured to operate with a federated namespace; and a memory for storing re-direction information accessible by the client for identifying a request issued by the client for a file set at a first location in the namespace where the file set is located a second, different location on one of the file servers and wherein the client in examining the re-direction information in the memory, re-directs the request to the second location in accordance with the re-direction information.
In one embodiment, the memory stores an automount map accessible to the client.
In one embodiment, the automount map stores the first location in the namespace from which the client must be re-directed to the second location also stored in the automount map.
In one embodiment, the memory stores a symbolic link relating the first location to the second location.
In one embodiment, the memory is in the server.
In one embodiment, the symbolic link in the namespace is the first location and a target of the symbolic link is the second location.
The details of one or more embodiments of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the disclosure will be apparent from the description and drawings, and from the claims.
Like reference symbols in the various drawings indicate like elements.